package com.ruoyi.cs.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.Response;
import com.ruoyi.cs.domain.TWar;
import com.ruoyi.cs.domain.apiVo.TWarDto;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 战令Service接口
 * 
 * @author ruoyi
 * @date 2023-12-11
 */
public interface ITWarService 
{
    /**
     * 查询战令
     * 
     * @param id 战令主键
     * @return 战令
     */
    public TWar selectTWarById(Long id);

    /**
     * 查询战令列表
     * 
     * @param tWar 战令
     * @return 战令集合
     */
    public List<TWar> selectTWarList(TWar tWar);

    /**
     * 新增战令
     * 
     * @param tWar 战令
     * @return 结果
     */
    public int insertTWar(TWar tWar);

    /**
     * 修改战令
     * 
     * @param tWar 战令
     * @return 结果
     */
    public int updateTWar(TWar tWar);

    /**
     * 批量删除战令
     * 
     * @param ids 需要删除的战令主键集合
     * @return 结果
     */
    public int deleteTWarByIds(Long[] ids);

    /**
     * 删除战令信息
     * 
     * @param id 战令主键
     * @return 结果
     */
    public int deleteTWarById(Long id);

    /**
     * @Desc: 获取战令详细信息
     * @author: zz
     * @date: 2023/12/12
     */
    public TWarDto getInfo(String userId);

    /**
     * @Desc: 单个战令奖励领取
     * @author: zz
     * @date: 2023/12/13
     */
    public Response singleReceive(String warId, Integer grate,String userId) throws Exception;

    /**
     * @Desc: 一键领取战令奖励
     * @author: zz
     * @date: 2023/12/13
     */
    public Response receive(String warId,String userId) throws Exception;

    /**
     * @Desc: 计算战令消费
     * @author: zz
     * @date: 2023/12/13
     */
    @Async(value = "threadPoolTaskExecutor")
    public void computeWarFlow(String userId, BigDecimal consumeFee);

//    /**
//     * @Desc:计算战令充值流水
//     * @author: zz
//     * @date: 2024/1/30
//     */
//    @Async(value = "threadPoolTaskExecutor")
//    public void computeCzWarFlow(String userId, BigDecimal consumeFee);

}
